1. Field of Invention
The present invention relates generally to allowing applications to be searched. More particularly, the present invention related to a framework which allows a user to search enterprise applications, and to perform actions using the results of a search.
2. Description of the Related Art
As the use of networks expands, the use of enterprise applications is becoming more prevalent. An enterprise application is generally a software application hosted on a server which has the capability of simultaneously providing services to a large number of users on a network. Often, an enterprise application is suitable for performing business-related functions. Business-related functions may include, but are not limited to, tracking customer information, accounting, and production scheduling.
Often, it is desirable to search for information such as information that may be stored in or otherwise associated with enterprise applications. By way of example, an enterprise application may contain within it information pertaining to the name of an account manager for a particular bank such as Bank XYZ in Australia. To answer a question or query such as “Who is the account manager for Bank XYZ in Australia?,” there are generally three ways in which answers may potentially be obtained. FIG. 1 is a diagrammatic representation of queries that may be made for information associated with an enterprise application. When a client 118 or a requester desires an answer to a query regarding information 114 that may be included in an enterprise application 110, client 118 may formulate a natural language query 130. Natural language query 130 may be made to an entity 122 that potentially has access to information 114 such as a human being. Entity 122 may have access to information 114 within enterprise application 110, or entity 122 may have access to information 114 via other avenues. While natural language query 130 may be relatively easy to formulate, entity 122 may not necessarily have access to information 114. Hence, an answer to natural language query 130 may not necessarily be readily obtained from entity 122. Client 118 may need to query more than one entity before an answer is obtained. Therefore, querying via an entity 122 with access such as a human being is often inefficient and costly.
As enterprise application 110 stores data such as information 114, client 118 may formulate a SQL or form-based query 134 that accesses information 114 in enterprise application 110. In general, information 114 within enterprise application 110 may only be accessed if a developer of enterprise application 110 makes information 114 available to client 118 or other user. The formulation of SQL or form-based query 134 to access available information 114 is difficult, as information 114 may be stored at a low level within enterprise application 110. The internal structure of enterprise application 110 may be complicated and, often, proprietary. In many cases, client 118 may need to take training courses pertaining to enterprise application 110 before client 118 is able to successfully formulate SQL or form-based query 134. Formulating SQL or form-based query 134 may require significant development efforts. Hence, although information 114 is likely to be successfully obtained based on SQL or form-based query 134, the steps associated with creating SQL or form-based query 134 may be complicated and time-consuming.
A keyword based query 138 may be entered by client 118 into a search engine 126 to locate information 114. If information 114 is the name of an account manager for Bank XYZ in Australia, keyword based query 138 may include the words “account,” “manager,” “XYZ,” and “Australia.” The use of search engine 126 may be relatively fast and efficient if information 114 is accessible. However, if information 114 turns out not to be available to search engine 126, i.e., if information 114 is not included in a document, file, or application that is accessible to search engine 126, then client 118 will not get satisfactory results to keyword based query 138. Information 114 may also not be available if it is stored in tables that are transactional, i.e., that contain descriptive fields for viewing but are not indexed for searching. Search engine 126 is substantially only capable of presenting search results that may be read by client 118. In other words, when results to keyword based query 138 are presented to client 118, the results are presented such that client 118 may read the results but generally may not act upon the results without a significant developmental effort.
Though a natural language query 130 and a keyword based query 138 may be effective in enabling client 118 to obtain information 114, natural language query 130 may be inefficient, and natural language query 130 and keyword based query 138 may not always provide client 118 with information 114, e.g., when information 114 is unavailable to entity 122 and to search engine 126. Further, as information 114 may not be accurate, if it is not obtained substantially directly from enterprise application 110 which uses information 114. In general, client 118 may successfully gain access to information 114 which is accurate via enterprise application 110. Such information 114 is at least as accurate as enterprise application 110. However, as mentioned above, forming a SQL or form-based query 134 is typically complicated.
Therefore, what is needed is a method and an apparatus which enables information stored in enterprise application to be readily searched. That is, what is desired is a system which allows a user to search enterprise applications in a structured manner for accurate information.